package main

import (
	"bytes"
	"fmt"
)

// 把一个缓存 buf 分片成两个切片：第一个是前 n 个 bytes，后一个是剩余的，用一行代码实现。

func split(s []byte, n int) (a, b []byte) {
	a, b = s[:n], s[n:]
	return
}

func splitBuf(buf bytes.Buffer, n int) (a, b []byte) {
	a, b = buf.Bytes()[:n], buf.Bytes()[n:]
	return
}

func main() {
	data := []byte{1, 3, 4, 'a', 'b', 'c'}
	a, b := split(data, 4)
	fmt.Println("after split: ", a, b)

	buff := bytes.NewBuffer([]byte{'d', 'e', 'c', 'a', 'g'})
	a, b = splitBuf(*buff, 2)
	fmt.Println("split buff: ", a, b)

}
